#pragma once

#include <map>
#include "DrawAutomaticUniformFactory.h"

namespace Renderer
{
	class DrawAutomaticUniformFactoryCollection
	{
	public:
		DrawAutomaticUniformFactoryCollection();

		~DrawAutomaticUniformFactoryCollection();

		std::string GetKeyFroItem(DrawAutomaticUniformFactory* item);

		std::map<std::string, DrawAutomaticUniformFactory*>* GetCollection() const;

		void Add(DrawAutomaticUniformFactory* uniformFactory);

		bool Contains(const std::string& name) const;

		DrawAutomaticUniformFactory* GetByName(const std::string& name) const;

	private:
		std::map<std::string, DrawAutomaticUniformFactory*>* m_pCollection;
	};
}